
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGDynamicVolume.h>

// Using =======================================================================
using namespace boost::python;

// Declarations ================================================================
namespace  {

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_DynamicVolume_dump_overloads_0_2, dump, 0, 2)


}// namespace


// Module ======================================================================
void Export_src_pyste_DynamicVolume()
{
    scope* osg_DynamicVolume_scope = new scope(
    class_< osg::DynamicVolume, bases< osg::Volume >  >("DynamicVolume", init< optional< osg::DynamicVolume::Type > >())
        .def(init< const osg::DynamicVolume& >())
        .def("getInstance", (const osg::Volume& (osg::DynamicVolume::*)() const)&osg::DynamicVolume::getInstance, return_internal_reference< 1 >())
        .def("getInstance", (osg::Volume& (osg::DynamicVolume::*)() )&osg::DynamicVolume::getInstance, return_internal_reference< 1 >())
        .def("instanceChanged", &osg::DynamicVolume::instanceChanged)
        .def("getType", &osg::DynamicVolume::getType)
        .def("setVolumeType", &osg::DynamicVolume::setVolumeType)
        .def("morphToType", &osg::DynamicVolume::morphToType)
        .def("getCenter", &osg::DynamicVolume::getCenter)
        .def("getScalarVolume", &osg::DynamicVolume::getScalarVolume)
        .def("getBounds", &osg::DynamicVolume::getBounds)
        .def("extendBy", (void (osg::DynamicVolume::*)(const osg::Pnt3f&) )&osg::DynamicVolume::extendBy)
        .def("extendBy", (void (osg::DynamicVolume::*)(const osg::Volume&) )&osg::DynamicVolume::extendBy)
        .def("intersect", (bool (osg::DynamicVolume::*)(const osg::Pnt3f&) const)&osg::DynamicVolume::intersect)
        .def("intersect", (bool (osg::DynamicVolume::*)(const osg::Line&) const)&osg::DynamicVolume::intersect)
        .def("intersect", (bool (osg::DynamicVolume::*)(const osg::Line&, osg::Real32&, osg::Real32&) const)&osg::DynamicVolume::intersect)
        .def("intersect", (bool (osg::DynamicVolume::*)(const osg::Volume&) const)&osg::DynamicVolume::intersect)
        .def("isOnSurface", &osg::DynamicVolume::isOnSurface)
        .def("transform", &osg::DynamicVolume::transform)
        .def("dump", &osg::DynamicVolume::dump, osg_DynamicVolume_dump_overloads_0_2())
        //.def( other< std::ostream >() << self )
    .def( self == self )
    );

    enum_< osg::DynamicVolume::Type >("Type")
        .value("SPHERE_VOLUME", osg::DynamicVolume::SPHERE_VOLUME)
        .value("BOX_VOLUME", osg::DynamicVolume::BOX_VOLUME)
    ;

    delete osg_DynamicVolume_scope;

}

